package com.zl.autocode.common.utils.generator;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public enum ZLGeneratorEnum {
    
    DATA_TYPE("data_type_table","data_type_method","","","",""),
    DATA_TEMPLATE("data_template","","","","",""),
    
    DATA_MAIN("data_main","","","模块","",""),
    DATA_METHOD("data_method","map_method","","方法集合","方法集合Map",""),
    DATA_TABLE("data_table","map_table","","表集合","表集合Map",""),
    METHOD_OWN("method_own","","","当前方法","",""),
    TABLE_OWN("table_own","","","当前表","",""),
    ENTITY_OWN("entity_own","","","当前实体","",""),
    TABLE_REL("table_rels","","","表关联关系","",""),
    
    DATA_IMPORT_METHOD("import_method_class","import_method_class2","","导入方法类路径","",""),
    DATA_IMPORT_TABLE("import_table_class","import_table_class_all","","导入表类路径","",""),
    
    DATA_CLASS("import_class","","","导入额外类路径","",""),
    DATA_RESOURCE("resource_class","resource_table_class","","加载类","",""),
    DATA_EXTENDS("extend_class","","","继承类","",""),
    DATA_FILE("import_file","","","引入文件路径","",""),
    
    
    DATA_TAG("tags","tags_","","标签集合","标签集合map",""),
    DATA_OTHER("other","other_","","其他模块集合","其他模块集合map",""),
    
    BASE_PACK("base_pack","","","基础类路径","",""), 
    MODULE_PACK("module_pack","","","模块类路径","",""), 
    BASE_PATH("base_path","","","基础文件路径","",""), 
    PACK_OWN("pack_own","pack_","pack2_","自身包路径","引入类路径","类路径"), 
    NAME_OWN("name_own","name_","","自身名称","引入名称",""), 
    UNAME_OWN("uname_own","uname_","","自身名称(大写)","引入名称(大写)",""),
    LNAME_OWN("lname_own","lname_","","自身名称(小写)","引入名称(小写)",""), 
    LEVEL_OWN("level_own","level_","","自身文件层级","引入文件层级",""), 
    
    TIME_STR("time_str","yyyy-MM-dd HH:mm:ss","","当前日期时间","",""), 
    DATE_STR("date_str","yyyy-MM-dd","","当前日期","",""), 
    AUTHOR_STR("author_str","","","创建者","",""), 
    EXPLAIN_STR("explain1_str","explain2_str","","说明1","说明2",""), 
    TITLE_STR("project_title","module_title","","项目名","模块名",""), 
    CREATE_DATE("create_date","yyyy-MM-dd","","创建日期","",""), 
    
    
    DEFAULT_TAG_NAME_REQ("name_req","lname_req","","请求体名","",""), 
    DEFAULT_TAG_NAME_RES("name_res","lname_res","","返回体名","",""), 
    DEFAULT_TAG_NAME_DAO("name_dao","lname_dao","","表Mapper名","",""), 
    DEFAULT_TAG_NAME_ENTITY("name_entity","lname_entity","","表实体名","",""), 
    DEFAULT_TAG_NAME_ENTITYVO("name_entityVo","lname_entityVo","","扩展表实体名","",""), 
    DEFAULT_TAG_NAME_RESBASE("name_resBase","lname_resBase","","基础表对象名","",""), 
    DEFAULT_TAG_NAME_RESBASE2("name_resBase2","lname_resBase2","","精简表对象名","",""), 
    
    ;
    private String code;
    private String code2;
    private String code3;
    private String desc;
    private String desc2;
    private String desc3;
    
    ZLGeneratorEnum(String code, String code2, String code3,String desc, String desc2, String desc3) {
        this.code = code;
        this.code2 = code2;
        this.code3 = code3;
        this.desc = desc;
        this.desc2 = desc2;
        this.desc3 = desc3;
    }
    public String getCode() {
        return code;
    }
    public String getCode2() {
        return code2;
    }
    public String getCode3() {
        return code3;
    }
    public String getDesc() {
        return desc;
    }
    public String getDesc2() {
        return desc2;
    }
    public String getDesc3() {
        return desc3;
    }

    public static List<Map<String,Object>> getParamCodeList() {
        List<Map<String,Object>> list = new ArrayList<>();
        list.add(setParams(TITLE_STR.getCode(), TITLE_STR.getDesc()));
        list.add(setParams(TITLE_STR.getCode2(), TITLE_STR.getDesc2()));
        list.add(setParams(AUTHOR_STR.getCode(), AUTHOR_STR.getDesc()));
        list.add(setParams(EXPLAIN_STR.getCode(), EXPLAIN_STR.getDesc()));
        list.add(setParams(EXPLAIN_STR.getCode2(), EXPLAIN_STR.getDesc2()));
        list.add(setParams(TIME_STR.getCode(), TIME_STR.getDesc()));
        list.add(setParams(DATE_STR.getCode(), DATE_STR.getDesc()));
        list.add(setParams(CREATE_DATE.getCode(), DATE_STR.getDesc()));
        
        list.add(setParams(DATA_CLASS.getCode(), DATA_CLASS.getDesc()));
        list.add(setParams(DATA_IMPORT_METHOD.getCode(), DATA_IMPORT_METHOD.getDesc()));
        list.add(setParams(DATA_IMPORT_TABLE.getCode(), DATA_IMPORT_TABLE.getDesc()));
        
        list.add(setParams(DATA_RESOURCE.getCode(), DATA_RESOURCE.getDesc()));
        list.add(setParams(DATA_EXTENDS.getCode(), DATA_EXTENDS.getDesc()));
        list.add(setParams(BASE_PACK.getCode(), BASE_PACK.getDesc()));
        list.add(setParams(MODULE_PACK.getCode(), MODULE_PACK.getDesc()));
        list.add(setParams(BASE_PATH.getCode(), BASE_PATH.getDesc()));
        list.add(setParams(PACK_OWN.getCode(), PACK_OWN.getDesc()));
        list.add(setParams(PACK_OWN.getCode2(), PACK_OWN.getDesc2()));
        list.add(setParams(PACK_OWN.getCode3(), PACK_OWN.getDesc3()));
        list.add(setParams(NAME_OWN.getCode(), NAME_OWN.getDesc()));
        list.add(setParams(NAME_OWN.getCode2(), NAME_OWN.getDesc2()));
        list.add(setParams(UNAME_OWN.getCode(), UNAME_OWN.getDesc()));
        list.add(setParams(UNAME_OWN.getCode2(), UNAME_OWN.getDesc2()));
        list.add(setParams(LNAME_OWN.getCode(), LNAME_OWN.getDesc()));
        list.add(setParams(LNAME_OWN.getCode2(), LNAME_OWN.getDesc2()));
        list.add(setParams(LEVEL_OWN.getCode(), LEVEL_OWN.getDesc()));
        list.add(setParams(LEVEL_OWN.getCode2(), LEVEL_OWN.getDesc2()));
        list.add(setParams(DATA_FILE.getCode(), DATA_FILE.getDesc()));
        list.add(setParams(METHOD_OWN.getCode(), METHOD_OWN.getDesc()));
        list.add(setParams(TABLE_OWN.getCode(), TABLE_OWN.getDesc()));
        list.add(setParams(ENTITY_OWN.getCode(), ENTITY_OWN.getDesc()));
        list.add(setParams(DATA_MAIN.getCode(), DATA_MAIN.getDesc()));
        list.add(setParams(DATA_METHOD.getCode(), DATA_METHOD.getDesc()));
        list.add(setParams(DATA_METHOD.getCode2(), DATA_METHOD.getDesc2()));
        list.add(setParams(DATA_TABLE.getCode(), DATA_TABLE.getDesc()));
        list.add(setParams(DATA_TABLE.getCode2(), DATA_TABLE.getDesc2()));
        list.add(setParams(TABLE_REL.getCode(), TABLE_REL.getDesc()));
        
        list.add(setParams(DATA_TAG.getCode(), DATA_TAG.getDesc()));
        list.add(setParams(DATA_TAG.getCode2(), DATA_TAG.getDesc2()));
        list.add(setParams(DATA_OTHER.getCode(), DATA_OTHER.getDesc()));
        list.add(setParams(DATA_OTHER.getCode2(), DATA_OTHER.getDesc2()));
        return list;
    }
    public static Map<String,Object> setParams(String code,String desc) {
        Map<String,Object> vo = new HashMap<>();
        vo.put("paramName", code);
        vo.put("paramDesc", desc);
        return vo;
    }
}